The invention relates to a data processor having a translation lookaside buffer and, more particularly, a data processing system using such a data processor. For example, the invention relates to a technique which is effective when it is applied to the realization of a high data processing speed.
In a virtual storage system, a virtual memory space which is sufficiently larger than a physical memory is prepared and a process is mapped into the virtual memory space. Now, "process" means a program which is being executed under management of an OS (Operating System). It is, therefore, sufficient to consider only the operation on a virtual memory as for the process. A MMU (Memory Management Unit) is used for mapping from the virtual memory to the physical memory. The MMU is usually managed by the OS (Operating System) and exchanges the physical memory so that the virtual memory which is needed by the process can be mapped into the physical memory. The exchange of the physical memory is performed between the MMU and a secondary storage or the like. The MMU generally also has a function to protect the storage so that a certain process doesn't erroneously access a physical memory of another process.
When an address translation from an address (virtual address) in the virtual memory to an address (physical address) in the physical memory is performed by using the MMU, there is a case where the address translation information is not registered in the MMU or a virtual memory of another process is erroneously accessed. In this instance, the MMU generates an exception, changes the mapping of the physical memory, and registers new address translation information.
Although the function of the MMU can be realized even by only software, if the translation is performed by software each time the process accesses to the physical memory, the efficiency thereof low. To prevent it, a translation lookaside buffer for address translation is prepared on the hardware and address translation information which is frequently used is stored in the translation lookaside buffer. That is, the translation lookaside buffer is constructed as a cache memory for the address translation information. A different point from an ordinary cache memory is that when the address translation fails, the exchange of the address translation information is performed mainly in dependence on software.
Various cache memories are widely used to realize a high speed of data and instruction access.